package com.ruoyi.system.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 营销员工档案对象 sys_staff
 * 
 * @author ruoyi
 * @date 2022-07-05
 */
@Data
public class SysStaff extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 人员编号||||本实体记录的唯一标识 */
    private String empNo;

    /** 部门编号||||本实体记录的唯一标识，创建部门的唯一编码。 */
    @Excel(name = "部门编号")
    private String deptNo;

    /**部门名称*/
    @Excel(name=" 部门名称 ")
    private String deptName;

    /** 工号||||工号，营销业务人员的服务工号。 */
    @Excel(name = "工号")
    private String staffNo;

    /** 姓名||||业务人员姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 性别||||性别。01男、02女 */
    @Excel(name = "性别",readConverterExp = "01=男,02=女")
    private String gender;

    /** 供电单位编号*/
    private String orgNo;

    /** 相片||||人员的相片。 */
    @Excel(name = "相片")
    private String photo;

    /** 职位||||所在职位名称。 */
    @Excel(name = "职位")
    private String posName;

    /** 岗位||||人员所在岗位代码。 */
    @Excel(name = "岗位")
    private String position;

    /** 工种||||工作分工种类：01检定人员、02修校人员、03装表接电。 */
    @Excel(name = "工种",readConverterExp = "01=检定人员,02=修校人员,03=装表接电")
    private String workTypeCode;

    /** 技术等级||||人员的技术等级代码。 */
    @Excel(name = "技术等级")
    private String techLevelCode;

    /** 出生年月||||出生年月日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生年月日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date ymd;

    /** 文化程度||||文化程度。01专科、02本科、03研究生、04博士、05博士后。 */
    @Excel(name = "文化程度",readConverterExp = "01=专科,02=本科,03=研究生,04=博士,05=博士后")
    private String degreeCode;

    /** 手机号码||||人员联系手机号码。 */
    @Excel(name = "手机号码")
    private String mobile;

    /** 办公电话||||办公室电话号码 */
    @Excel(name = "办公电话")
    private String officeTelNo;

    /** 服务等级||||服务人员的服务等级设置。01一级、02二级、03三级、04四级、05五级。 */
    @Excel(name = "服务等级",readConverterExp = "01=一级,02=二级,03=三级,04=四级,05=五级")
    private String srvLevelCode;

    /** 持证标志||||是否持有专业学习证明。 */
    @Excel(name = "持证标志")
    private String certFlag;

    /** 定编标志||||是否为定编人员。 */
    @Excel(name = "定编标志")
    private String fixedFlag;

    /** 在岗标志||||是否在职标志。 */
    @Excel(name = "在岗标志")
    private String onPosFlag;

    /** 专业||||技术专业说明。 */
    @Excel(name = "专业")
    private String professionCode;

    /** 本专业工作日期||||本人在该业务专业工作的开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "本专业工作日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date professionBgnDate;

    /** 工作日期||||参加工作开始日期。 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "工作日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date joinDate;

    /** 职称||||个人职称说明。 */
    @Excel(name = "职称")
    private String titel;

    /** 政治面貌||||政治面貌，如01普通02团员03党员 */
    @Excel(name = "政治面貌||||政治面貌，如01普通02团员03党员",readConverterExp = "01=普通,02=团员,03=党员")
    private String politicalStatusCode;

    /** 职称级别||||职称级别，如01初级02中级03高级及以上 */
    @Excel(name = "职称级别",readConverterExp = "01=初级,02=中级,03=高级及以上")
    private String titleLevelCode;

    /** 调退亡||||人员调离、退休、死亡标识。 */
    @Excel(name = "调退亡")
    private String statusCode;

    /** 用电类别||||用电类别 */
    @Excel(name = "用电类别")
    private String categories;

    private String deptId;

    private String orgName;

    // 对字段进行排序
    private String orderField;    // 存放排序字段
    private String orderType;     // ASC DESC

    public String getOrderField() {
        return orderField;
    }

    public void setOrderField(String orderField) {
        this.orderField = orderField;
    }

    public String getOrderType() {
        return orderType;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }


    public void setEmpNo(String empNo) 
    {
        this.empNo = empNo;
    }

    public String getEmpNo() 
    {
        return empNo;
    }
    public void setDeptNo(String deptNo) 
    {
        this.deptNo = deptNo;
    }

    public String getDeptNo() 
    {
        return deptNo;
    }
    public void setStaffNo(String staffNo) 
    {
        this.staffNo = staffNo;
    }

    public String getStaffNo() 
    {
        return staffNo;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }

    public String getOrgNo() {
        return orgNo;
    }

    public void setOrgNo(String orgNo) {
        this.orgNo = orgNo;
    }

    public void setPhoto(String photo)
    {
        this.photo = photo;
    }

    public String getPhoto() 
    {
        return photo;
    }
    public void setPosName(String posName) 
    {
        this.posName = posName;
    }

    public String getPosName() 
    {
        return posName;
    }
    public void setPosition(String position) 
    {
        this.position = position;
    }

    public String getPosition() 
    {
        return position;
    }
    public void setWorkTypeCode(String workTypeCode) 
    {
        this.workTypeCode = workTypeCode;
    }

    public String getWorkTypeCode() 
    {
        return workTypeCode;
    }
    public void setTechLevelCode(String techLevelCode) 
    {
        this.techLevelCode = techLevelCode;
    }

    public String getTechLevelCode() 
    {
        return techLevelCode;
    }
    public void setYmd(Date ymd) 
    {
        this.ymd = ymd;
    }

    public Date getYmd() 
    {
        return ymd;
    }
    public void setDegreeCode(String degreeCode) 
    {
        this.degreeCode = degreeCode;
    }

    public String getDegreeCode() 
    {
        return degreeCode;
    }
    public void setMobile(String mobile) 
    {
        this.mobile = mobile;
    }

    public String getMobile() 
    {
        return mobile;
    }
    public void setOfficeTelNo(String officeTelNo) 
    {
        this.officeTelNo = officeTelNo;
    }

    public String getOfficeTelNo() 
    {
        return officeTelNo;
    }
    public void setSrvLevelCode(String srvLevelCode) 
    {
        this.srvLevelCode = srvLevelCode;
    }

    public String getSrvLevelCode() 
    {
        return srvLevelCode;
    }
    public void setCertFlag(String certFlag) 
    {
        this.certFlag = certFlag;
    }

    public String getCertFlag() 
    {
        return certFlag;
    }
    public void setFixedFlag(String fixedFlag) 
    {
        this.fixedFlag = fixedFlag;
    }

    public String getFixedFlag() 
    {
        return fixedFlag;
    }
    public void setOnPosFlag(String onPosFlag) 
    {
        this.onPosFlag = onPosFlag;
    }

    public String getOnPosFlag() 
    {
        return onPosFlag;
    }
    public void setProfessionCode(String professionCode) 
    {
        this.professionCode = professionCode;
    }

    public String getProfessionCode() 
    {
        return professionCode;
    }
    public void setProfessionBgnDate(Date professionBgnDate) 
    {
        this.professionBgnDate = professionBgnDate;
    }

    public Date getProfessionBgnDate() 
    {
        return professionBgnDate;
    }
    public void setJoinDate(Date joinDate) 
    {
        this.joinDate = joinDate;
    }

    public Date getJoinDate() 
    {
        return joinDate;
    }
    public void setTitel(String titel) 
    {
        this.titel = titel;
    }

    public String getTitel() 
    {
        return titel;
    }
    public void setPoliticalStatusCode(String politicalStatusCode) 
    {
        this.politicalStatusCode = politicalStatusCode;
    }

    public String getPoliticalStatusCode() 
    {
        return politicalStatusCode;
    }
    public void setTitleLevelCode(String titleLevelCode) 
    {
        this.titleLevelCode = titleLevelCode;
    }

    public String getTitleLevelCode() 
    {
        return titleLevelCode;
    }
    public void setStatusCode(String statusCode) 
    {
        this.statusCode = statusCode;
    }

    public String getStatusCode() 
    {
        return statusCode;
    }
    public void setCategories(String categories) 
    {
        this.categories = categories;
    }

    public String getCategories() 
    {
        return categories;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("empNo", getEmpNo())
            .append("deptNo", getDeptNo())
            .append("staffNo", getStaffNo())
            .append("name", getName())
            .append("gender", getGender())
            .append("photo", getPhoto())
            .append("posName", getPosName())
            .append("position", getPosition())
            .append("workTypeCode", getWorkTypeCode())
            .append("techLevelCode", getTechLevelCode())
            .append("ymd", getYmd())
            .append("degreeCode", getDegreeCode())
            .append("mobile", getMobile())
            .append("officeTelNo", getOfficeTelNo())
            .append("srvLevelCode", getSrvLevelCode())
            .append("certFlag", getCertFlag())
            .append("fixedFlag", getFixedFlag())
            .append("onPosFlag", getOnPosFlag())
            .append("professionCode", getProfessionCode())
            .append("professionBgnDate", getProfessionBgnDate())
            .append("joinDate", getJoinDate())
            .append("titel", getTitel())
            .append("politicalStatusCode", getPoliticalStatusCode())
            .append("titleLevelCode", getTitleLevelCode())
            .append("statusCode", getStatusCode())
            .append("remark", getRemark())
            .append("categories", getCategories())
            .toString();
    }
}
